package MediciADistanza.Entity.User.ModelData;

import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.output.Format;
import org.jdom2.output.XMLOutputter;

import Enum.XML_ELEMENT;

/**
 * Interfaccia di dati modulo
 * @author Andrea Iann&igrave;
 *
 */
public abstract class DatiModulo {
	/**
	 * Documento XML
	 */
	private Document doc;
	/**
	 * Root del documento XML
	 */
	protected Element root = new Element(XML_ELEMENT.DATA);
	/**
	 * Serve a popolare il documento XML
	 */
	protected abstract void populateDocument();
	/**
	 * Aggiunge un ID alla richiesta
	 */
	public void addRequestID(String id){
		root.addContent(new Element(XML_ELEMENT.REQUEST_ID).setText(id));
	}
	/**
	 * Restituisce un XML contenente i dati
	 * 
	 * sarebbe pi&ugrave; adatto un toString, ma in quel caso non 
	 * darebbe l'errore di compilazione.
	 * @return Stringa contente i dati in formato XML
	 */
	public String toXMLString() {
		
		populateDocument();
		doc =  new Document(root);
		XMLOutputter outputter = new XMLOutputter(Format.getPrettyFormat());
        return outputter.outputString(doc);
	}
		
		
}
